package com.hxk.behaviorMode.chainOfResp;
/**
 * 测试责任链模式
 * 场景：
 * 处理一些审批流程的业务
 * 角色：
 * 1、抽象责任链对象（Leader）
 * 2、具体的责任链对象（Director，Manager，GeneralManager）
 * 3、要处理的责任对象（LeaveRequest）
 * 测试案例：
 *  公司里面，请假条的审批过程：
	• 如果请假天数小于3天，主任审批
	• 如果请假天数大于等于3天，小于10天，经理审批
	• 如果大于等于10天，小于30天，总经理审批
	• 如果大于等于30天，提示拒绝
 * @author Cactus
 *
 */
public class Test {

	public static void main(String[] args) {
		//创建一个请假条
		LeaveRequest request = new LeaveRequest("孙悟空", 12, "回花果山看他的孩儿们");
		
		//创建领导
		Leader zhangsan = new Director("张三");
		Leader lisi = new Manager("李四");
		Leader wangwu = new GeneralManager("王五");
		
		//建立上下级关系
		zhangsan.setNextLeader(lisi);
		lisi.setNextLeader(wangwu);
		
		//请假
		zhangsan.handleRequest(request);
	}

}
